package com.ly.heart.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import lombok.experimental.Accessors;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-销售退货单对象 erp_king_sale_refund_info
 *
 * @author wutao
 * @date 2024-07-21
 */
@TableName ( "erp_king_sale_refund_info" )
@ApiModel ( value = "erp_king_sale_refund_info对象", description = "金蝶-销售退货单" )
@Data
@Accessors ( chain = true )
public class KingSaleRefundEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId ( type = IdType.INPUT )
    private String id;

    /**
     * 单据类型
     */
    @ApiModelProperty ( "单据类型" )
    @TableField ( "doc_type" )
    @Excel ( name = "单据类型" )
    private String docType;

    /**
     * 销售订单Id
     */
    @ApiModelProperty ( "销售订单Id" )
    @TableField ( "sale_order_id" )
    @Excel ( name = "销售订单Id" )
    private String saleOrderId;

    /**
     * 销售出库单Id
     */
    @ApiModelProperty ( "销售出库单Id" )
    @TableField ( "inventory_id" )
    @Excel ( name = "销售出库单Id" )
    private String inventoryId;

    /**
     * 业务类型（与单据类型相对应）
     */
    @TableField ( "doc_business_type" )
    @ApiModelProperty ( "业务类型" )
    @Excel ( name = "业务类型", readConverterExp = "与=单据类型相对应" )
    private String docBusinessType;

    /**
     * 退货单编码，前端不处理
     */
    @ApiModelProperty ( "退货单编码，前端不处理" )
    @TableField ( "refund_code" )
    @Excel ( name = "退货单编码，前端不处理" )
    private String refundCode;

    /**
     * 退货时间
     */
    @ApiModelProperty ( "退货时间" )
    @TableField ( "return_goods_date" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "退货时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date returnGoodsDate;

    @ApiModelProperty ( "审核日期" )
    @TableField ( "examine_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    @Excel ( name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date examineTime;

    @ApiModelProperty ( "审核人" )
    @TableField ( "examine_name" )
    @Excel ( name = "审核人" )
    private String examineName;
    /**
     * 单据状态
     */
    @ApiModelProperty ( "单据状态" )
    @TableField ( "doc_state" )
    @Excel ( name = "单据状态" )
    private String docState;

    /**
     * 销售组织
     */
    @ApiModelProperty ( "销售组织" )
    @TableField ( "sale_group" )
    @Excel ( name = "销售组织" )
    private String saleGroup;

    /**
     * 退货客户
     */
    @ApiModelProperty ( "退货客户" )
    @TableField ( "return_customer" )
    @Excel ( name = "退货客户" )
    private String returnCustomer;

    /**
     * 结算币别
     */
    @ApiModelProperty ( "结算币别" )
    @TableField ( "settlement_currency" )
    @Excel ( name = "结算币别" )
    private String settlementCurrency;

    /**
     * 是否使用
     */
    @ApiModelProperty ( "是否使用" )
    @TableField ( "is_used" )
    @Excel ( name = "是否使用" )
    private Long isUsed;

    /**
     * 退货原因
     */
    @ApiModelProperty ( "退货原因" )
    @TableField ( "return_reason" )
    @Excel ( name = "退货原因" )
    private String returnReason;

    @ApiModelProperty ( "汇率" )
    @TableField ( "rate" )
    private String rate;

    /**
     * 交货地点
     */
    @ApiModelProperty ( "交货地点" )
    @TableField ( "delivery_address" )
    @Excel ( name = "交货地点" )
    private String deliveryAddress;

    /**
     * 库存组织
     */
    @ApiModelProperty ( "库存组织" )
    @TableField ( "inventory_group" )
    @Excel ( name = "库存组织" )
    private String inventoryGroup;

    /**
     * 库存部门
     */
    @ApiModelProperty ( "库存部门" )
    @TableField ( "inventory_dept" )
    @Excel ( name = "库存部门" )
    private String inventoryDept;

    /**
     * 库存组
     */
    @ApiModelProperty ( "库存组" )
    @TableField ( "inventory_org" )
    @Excel ( name = "库存组" )
    private String inventoryOrg;

    /**
     * 仓管员
     */
    @ApiModelProperty ( "仓管员" )
    @TableField ( "warehouse_operator" )
    @Excel ( name = "仓管员" )
    private String warehouseOperator;

    @ApiModelProperty ( "审核状态" )
    @TableField ( "state" )
    @Excel ( name = "审核状态" )
    private String state;

    /**
     * 流程id
     */
    @ApiModelProperty ( "流程id" )
    @TableField ( "instance_id" )
    @Excel ( name = "流程id" )
    private String instanceId;

    @TableField ( "create_by" )
    private String createBy;

    @TableField ( "create_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date createTime;

    @TableField ( "update_by" )
    private String updateBy;

    @TableField ( "update_time" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date updateTime;

    /**
     * 是否发送金蝶(1:是2:否)·
     */
    @ApiModelProperty ( "是否发送金蝶(1:是2:否)·" )
    @TableField ( "is_send" )
    @Excel ( name = "是否发送金蝶(1:是2:否)·" )
    private Integer isSend;

    @ApiModelProperty ( "业务type" )
    @TableField ( exist = false )
    private String businessType;

    @ApiModelProperty ( "流程模型id" )
    @TableField ( exist = false )
    private String modelId;

    @TableField ( exist = false )
    private String docTypeName;

    @TableField ( exist = false )
    private String returnCustomerName;

    @TableField ( exist = false )
    private String settlementCurrencyName;

    @TableField ( exist = false )
    private String warehouseOperatorName;

    @TableField ( exist = false )
    private String materialCode;

    @TableField ( exist = false )
    private String refundNum;

    @TableField ( exist = false )
    private String totalTaxPrice;

    @TableField ( exist = false )
    private String refundDate;

    @TableField ( exist = false )
    private String refundType;

    @TableField ( exist = false )
    private String saleGroupName;

    @TableField ( exist = false )
    private String inventoryOrgName;

    @TableField ( exist = false )
    private String inventoryDeptName;

    @TableField ( exist = false )
    private String inventoryGroupName;

    @TableField ( exist = false )
    private List<KingSaleRefundDetailEntity> kingSaleRefundDetailEntityList;

    //以下送到金蝶的编码
    @TableField ( exist = false )
    private String returnCustomerCode;

    @TableField ( exist = false )
    private String saleGroupCode;

    @TableField ( exist = false )
    private String inventoryGroupCode;

}
